<template>
  <div class="add">
    <el-dialog :title="{add:'添加权限',edit:'修改权限'}[mode]" :visible="isShow" @close="cancel">
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item prop="name" label="权限名称">
          <el-input v-model="form.name" />
        </el-form-item>
        <el-form-item prop="code" label="权限标识">
          <el-input v-model="form.code" />
        </el-form-item>
        <el-form-item prop="description" label="权限描述">
          <el-input v-model="form.description" />
        </el-form-item>
        <el-form-item label="企业可见">
          <div class="switch">
            <!-- active-value用来控制开关的值 -->
            <el-switch v-model="form.enVisible" active-value="form.enVisible" active-text="可见" inactive-text="不可见" />
          </div>
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="btn">
          <el-button @click="cancel">取消</el-button>
          <el-button type="primary" @click="submit">确定</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>

<script>
import { syspermissionPOST, syspermissionPut } from '@/api/permission.js'
export default {
  model: {
    prop: 'isShow'
  },
  props: {
    isShow: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      mode: 'add',
      form: {
        name: '', //	string	非必须
        code: '', //	string	非必须
        description: '', //	string	非必须
        enVisible: '1', //	string	非必须 0可见 1 不可见
        type: '', //	number	非必须 页面 1 按钮:2
        pid: '' //	string	非必须点击项的id
      },
      rules: {
        name: [{ required: true, message: '必填', trigger: 'blur' }],
        code: [{ required: true, message: '必填', trigger: 'blur' }],
        description: [{ required: true, message: '必填', trigger: 'blur' }]
      }
    }
  },
  methods: {
    //   点击取消按钮关闭弹窗
    cancel() {
      // 点击取消关闭弹框
      this.$emit('input', false)
      //   清空form表单数据和验证规则
      this.$refs.form.resetFields()
      this.form = {
        name: '', //	string	非必须
        code: '', //	string	非必须
        description: '', //	string	非必须
        enVisible: '', //	string	非必须 0可见,1不可见
        type: '', //	number	非必须 页面1 按钮2
        pid: '' //	string	非必须 点击项的id
      }
    },
    submit() {
      this.$refs.form.validate(async(result) => {
        if (result) {
          console.log(this.form)
          // 判断点击确定弹框的使用场景
          if (this.mode === 'add') {
            await syspermissionPOST(this.form)
            //   关闭弹窗
            this.cancel()
            // 刷新父级页面
            //   点击提交按钮,保存新添加的权限,提示添加成功,关闭弹框,清空弹框
            this.$message.success('添加成功')
          } else if (this.mode === 'edit') {
            console.log(this.form.enVisible)
            console.log(this.mode)
            //   提交修改内容
            await syspermissionPut(this.form)
            // 关闭弹窗
            this.cancel()
            // 提示修改成功
            this.$message.success('修改成功')
            // 刷新父级页面
          }
          this.$emit('getPermissionList')
          // 验证成功
        } else {
          // 验证失败
        }
      })
    }
  }

}
</script>

<style lang='scss' scoped>
.add{
    .btn{
        text-align: center;
    }
    .switch{
        text-align: left;
    }
}

</style>
